Roo Codeのオーケストレーション機能を用いたドキュメント駆動開発およびGitHub Flowに基づく開発手順
概要
動作手順:人間がドキュメントを書き,AIエージェントはテスト駆動開発で実装する 1. 人間はドキュメントに要件を書く
2. AIはドキュメントの要件を満たすようにテストコードを書く(red)
3. AIはテストを達成するようにソースコードを実装する(green)
4. テストの達成に無理があると判断した場合:
AIはテストコードとソースコードを同時にデバッグする(green)
テストがドキュメントの要件を満たしていない場合:
要件に問題があると推測される場合,AIはドキュメントの修正をユーザーに提案する
要件に問題がないと推測される場合,2に戻る
5. AIはタスク達成を報告する
6. 人間はコードレビューとリファクタリングを行う
ドキュメントは.roo/rulesに記述する
人間が責任を持って把握できる程度の必要十分な記述に留める
1. ユーザーは,統括役のエージェントにタスクを与える
2. 統括役AIは,複雑なタスクを複数のサブタスクに分解して,まずするべきことを決める
3. 統括役AIは,実行役AIにサブタスクの達成と結果報告を依頼する
4. 実行役AIは,与えられたサブタスクを達成するように作業を行い,その結果を報告する.
5. 統括役AIは,報告に基づいて思考・判断を行い,ユーザーの目的達成に向けた指示を繰り返す
効果
実行現場のコンテクストと,全体統括のコンテクストが分離される
これにより,具体的には次のような恩恵が得られる
1. コンテクストの溢れによる高額化を防げる
2. コンテクストの大規模化による思考精度の低下が防げる
3. 実装の都合により目的を歪めることが起きにくくなり,目的達成の精度が上がる
例:この実装は動作しないというコンピュータの応答をもとに実装できそうな目的にすり替えるなどがなくなる
1. 作業ブランチ作成
ローカルで main ブランチを最新にする
作業用ブランチを作成して移動する
2. AIエージェントへのタスク依頼
作業目的をAIに指示する
ファイル読み込み,編集,再試行のみを自動化する
サブタスクやコマンド実行は都度ユーザーが確認して問題があれば軌道修正を図る
3. タスク達成後,git差分で第一次コードレビュー
AIによる変更をgit diffで確認
問題がある場合は(a)手動で修正,(b)AIに修正依頼,(c)巻き戻して変更を削除のいずれかで対応する
4. ドキュメントの更新
ドキュメントや作業方針に変更が生じる場合は.roo/rulesを修正する
5. コミットとプッシュ
変更内容が問題ない場合はコミット(変更をgitに記録)して,プッシュ(手元の作業結果をGitHub上に反映)する
6. プルリクエスト作成
プルリクエストの下書きをAIに依頼する
GitHubでプルリクエストを作成
GitHub のリポジトリで「Compare & pull request」からプルリクを作成
生成されたテキストの内容を確認したもの,あるいはそれを修正したものを使用
7. 第二次コードレビュー
GitHub 上でプルリクエストをレビューする
マージの競合を確認
問題が無ければプルリクエストをmainブランチにマージする
8. 作業ブランチ削除
マージされたら不要になったGitHub上の作業ブランチを削除する
ローカルでもmainブランチに戻り,pullしてマージ結果を反映した後,作業ブランチを削除する
ーーー
2025/5/6 14:10